#!/bin/bash

echo "🔍 Cursor 性能检查"
echo "=================="

# 检查文件数量
echo "📁 项目文件统计："
echo "总文件数: $(find . -type f -name "*.ts" -o -name "*.tsx" -o -name "*.js" -o -name "*.jsx" | wc -l)"
echo "TypeScript文件: $(find . -name "*.ts" -o -name "*.tsx" | wc -l)"
echo "JavaScript文件: $(find . -name "*.js" -o -name "*.jsx" | wc -l)"

# 检查大文件
echo ""
echo "📏 大文件检查 (>500行):"
find . -name "*.ts" -o -name "*.tsx" -o -name "*.js" -o -name "*.jsx" | while read file; do
    lines=$(wc -l < "$file" 2>/dev/null || echo "0")
    if [ "$lines" -gt 500 ]; then
        echo "  $file: $lines 行"
    fi
done

# 检查缓存大小
echo ""
echo "💾 缓存大小检查："
if [ -d ".expo" ]; then
    expo_size=$(du -sh .expo 2>/dev/null | cut -f1)
    echo "  .expo: $expo_size"
fi

if [ -d "node_modules" ]; then
    node_size=$(du -sh node_modules 2>/dev/null | cut -f1)
    echo "  node_modules: $node_size"
fi

# 检查内存使用
echo ""
echo "🧠 内存使用检查："
if command -v ps &> /dev/null; then
    cursor_pid=$(ps aux | grep -i cursor | grep -v grep | head -1 | awk '{print $2}')
    if [ ! -z "$cursor_pid" ]; then
        memory=$(ps -o rss= -p "$cursor_pid" 2>/dev/null | awk '{print $1/1024}')
        echo "  Cursor 内存使用: ${memory}MB"
    fi
fi

# 性能建议
echo ""
echo "💡 性能建议："
echo "1. 如果文件数量过多，考虑拆分大文件"
echo "2. 如果缓存过大，运行 ./optimize-performance.sh"
echo "3. 如果内存使用过高，重启 Cursor"
echo "4. 关闭不必要的扩展和标签页"

echo ""
echo "✅ 检查完成！" 